{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn.metrics import confusion_matrix\n",
    "from matplotlib import pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "dpath = './data/'\n",
    "train = pd.read_csv(dpath+'Otto_FE_train.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>feat_1</th>\n",
       "      <th>feat_2</th>\n",
       "      <th>feat_3</th>\n",
       "      <th>feat_4</th>\n",
       "      <th>feat_5</th>\n",
       "      <th>feat_6</th>\n",
       "      <th>feat_7</th>\n",
       "      <th>feat_8</th>\n",
       "      <th>feat_9</th>\n",
       "      <th>...</th>\n",
       "      <th>feat_85</th>\n",
       "      <th>feat_86</th>\n",
       "      <th>feat_87</th>\n",
       "      <th>feat_88</th>\n",
       "      <th>feat_89</th>\n",
       "      <th>feat_90</th>\n",
       "      <th>feat_91</th>\n",
       "      <th>feat_92</th>\n",
       "      <th>feat_93</th>\n",
       "      <th>target</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0.402093</td>\n",
       "      <td>-0.210106</td>\n",
       "      <td>-0.307165</td>\n",
       "      <td>-0.279443</td>\n",
       "      <td>-0.161867</td>\n",
       "      <td>-0.119331</td>\n",
       "      <td>-0.188045</td>\n",
       "      <td>-0.293664</td>\n",
       "      <td>-0.291038</td>\n",
       "      <td>...</td>\n",
       "      <td>0.246100</td>\n",
       "      <td>-0.420870</td>\n",
       "      <td>-0.249802</td>\n",
       "      <td>-0.413584</td>\n",
       "      <td>-0.299712</td>\n",
       "      <td>-0.176699</td>\n",
       "      <td>-0.129516</td>\n",
       "      <td>-0.386938</td>\n",
       "      <td>-0.104963</td>\n",
       "      <td>Class_1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>-0.253508</td>\n",
       "      <td>-0.210106</td>\n",
       "      <td>-0.307165</td>\n",
       "      <td>-0.279443</td>\n",
       "      <td>-0.161867</td>\n",
       "      <td>-0.119331</td>\n",
       "      <td>-0.188045</td>\n",
       "      <td>0.149647</td>\n",
       "      <td>-0.291038</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.280099</td>\n",
       "      <td>-0.420870</td>\n",
       "      <td>-0.249802</td>\n",
       "      <td>-0.413584</td>\n",
       "      <td>-0.299712</td>\n",
       "      <td>-0.176699</td>\n",
       "      <td>-0.129516</td>\n",
       "      <td>-0.386938</td>\n",
       "      <td>-0.104963</td>\n",
       "      <td>Class_1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>-0.253508</td>\n",
       "      <td>-0.210106</td>\n",
       "      <td>-0.307165</td>\n",
       "      <td>-0.279443</td>\n",
       "      <td>-0.161867</td>\n",
       "      <td>-0.119331</td>\n",
       "      <td>-0.188045</td>\n",
       "      <td>0.149647</td>\n",
       "      <td>-0.291038</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.280099</td>\n",
       "      <td>-0.420870</td>\n",
       "      <td>-0.249802</td>\n",
       "      <td>-0.413584</td>\n",
       "      <td>-0.299712</td>\n",
       "      <td>-0.176699</td>\n",
       "      <td>-0.129516</td>\n",
       "      <td>-0.386938</td>\n",
       "      <td>-0.104963</td>\n",
       "      <td>Class_1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>0.402093</td>\n",
       "      <td>-0.210106</td>\n",
       "      <td>-0.307165</td>\n",
       "      <td>0.079240</td>\n",
       "      <td>13.508710</td>\n",
       "      <td>4.524667</td>\n",
       "      <td>4.665884</td>\n",
       "      <td>-0.293664</td>\n",
       "      <td>-0.291038</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.280099</td>\n",
       "      <td>-0.047949</td>\n",
       "      <td>1.019683</td>\n",
       "      <td>-0.413584</td>\n",
       "      <td>-0.299712</td>\n",
       "      <td>-0.176699</td>\n",
       "      <td>-0.129516</td>\n",
       "      <td>-0.386938</td>\n",
       "      <td>-0.104963</td>\n",
       "      <td>Class_1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>-0.253508</td>\n",
       "      <td>-0.210106</td>\n",
       "      <td>-0.307165</td>\n",
       "      <td>-0.279443</td>\n",
       "      <td>-0.161867</td>\n",
       "      <td>-0.119331</td>\n",
       "      <td>-0.188045</td>\n",
       "      <td>-0.293664</td>\n",
       "      <td>-0.291038</td>\n",
       "      <td>...</td>\n",
       "      <td>0.246100</td>\n",
       "      <td>-0.420870</td>\n",
       "      <td>-0.249802</td>\n",
       "      <td>-0.413584</td>\n",
       "      <td>-0.299712</td>\n",
       "      <td>0.040798</td>\n",
       "      <td>-0.129516</td>\n",
       "      <td>-0.386938</td>\n",
       "      <td>-0.104963</td>\n",
       "      <td>Class_1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 95 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   id    feat_1    feat_2    feat_3    feat_4     feat_5    feat_6    feat_7  \\\n",
       "0   1  0.402093 -0.210106 -0.307165 -0.279443  -0.161867 -0.119331 -0.188045   \n",
       "1   2 -0.253508 -0.210106 -0.307165 -0.279443  -0.161867 -0.119331 -0.188045   \n",
       "2   3 -0.253508 -0.210106 -0.307165 -0.279443  -0.161867 -0.119331 -0.188045   \n",
       "3   4  0.402093 -0.210106 -0.307165  0.079240  13.508710  4.524667  4.665884   \n",
       "4   5 -0.253508 -0.210106 -0.307165 -0.279443  -0.161867 -0.119331 -0.188045   \n",
       "\n",
       "     feat_8    feat_9   ...      feat_85   feat_86   feat_87   feat_88  \\\n",
       "0 -0.293664 -0.291038   ...     0.246100 -0.420870 -0.249802 -0.413584   \n",
       "1  0.149647 -0.291038   ...    -0.280099 -0.420870 -0.249802 -0.413584   \n",
       "2  0.149647 -0.291038   ...    -0.280099 -0.420870 -0.249802 -0.413584   \n",
       "3 -0.293664 -0.291038   ...    -0.280099 -0.047949  1.019683 -0.413584   \n",
       "4 -0.293664 -0.291038   ...     0.246100 -0.420870 -0.249802 -0.413584   \n",
       "\n",
       "    feat_89   feat_90   feat_91   feat_92   feat_93   target  \n",
       "0 -0.299712 -0.176699 -0.129516 -0.386938 -0.104963  Class_1  \n",
       "1 -0.299712 -0.176699 -0.129516 -0.386938 -0.104963  Class_1  \n",
       "2 -0.299712 -0.176699 -0.129516 -0.386938 -0.104963  Class_1  \n",
       "3 -0.299712 -0.176699 -0.129516 -0.386938 -0.104963  Class_1  \n",
       "4 -0.299712  0.040798 -0.129516 -0.386938 -0.104963  Class_1  \n",
       "\n",
       "[5 rows x 95 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(61878, 95)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = train.iloc[:,1:94]\n",
    "y = train['target']\n",
    "feat_names = X.columns\n",
    "from scipy.sparse import csr_matrix\n",
    "X = csr_matrix(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train,X_val,y_train,y_val = train_test_split(X,y,train_size=8000,test_size=2000,random_state=6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((8000, 93), (2000, 93))"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape,X_val.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.svm import SVC\n",
    "def grid_param(C,gamma,X_train,y_train,X_val,y_val):\n",
    "    svc2 = SVC(C=C,kernel='rbf',gamma=gamma)\n",
    "    svc2.fit(X_train,y_train)\n",
    "    accuracy = svc2.score(X_val,y_val)\n",
    "    print(\"C={}:gamma={}:accuracy={}\".format(C,gamma,accuracy))\n",
    "    return accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "C=0.01:gamma=1e-05:accuracy=0.2735\n",
      "C=0.01:gamma=0.0001:accuracy=0.2735\n",
      "C=0.01:gamma=0.001:accuracy=0.3345\n",
      "C=0.01:gamma=0.01:accuracy=0.4765\n",
      "C=0.1:gamma=1e-05:accuracy=0.2735\n",
      "C=0.1:gamma=0.0001:accuracy=0.3545\n",
      "C=0.1:gamma=0.001:accuracy=0.6085\n",
      "C=0.1:gamma=0.01:accuracy=0.6885\n",
      "C=1.0:gamma=1e-05:accuracy=0.357\n",
      "C=1.0:gamma=0.0001:accuracy=0.6095\n",
      "C=1.0:gamma=0.001:accuracy=0.7175\n",
      "C=1.0:gamma=0.01:accuracy=0.7515\n",
      "C=10.0:gamma=1e-05:accuracy=0.6085\n",
      "C=10.0:gamma=0.0001:accuracy=0.717\n",
      "C=10.0:gamma=0.001:accuracy=0.7455\n",
      "C=10.0:gamma=0.01:accuracy=0.762\n",
      "C=100.0:gamma=1e-05:accuracy=0.717\n",
      "C=100.0:gamma=0.0001:accuracy=0.7455\n",
      "C=100.0:gamma=0.001:accuracy=0.7595\n",
      "C=100.0:gamma=0.01:accuracy=0.743\n"
     ]
    }
   ],
   "source": [
    "Cs = np.logspace(-2,2,5)\n",
    "gammas = np.logspace(-5,-2,4)\n",
    "accuracys = np.matrix(np.zeros((len(Cs),len(gammas))),float)\n",
    "for i,c in enumerate(Cs):\n",
    "    for j,g in enumerate(gammas):\n",
    "        accuracys[i,j] = grid_param(c,g,X_train,y_train,X_val,y_val)   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "axis_x = np.log10(Cs)\n",
    "for j,g in enumerate(gammas):\n",
    "    plt.plot(axis_x,accuracys[:,j],label = \"gamma\"+str(np.log10(g)))\n",
    "axis_x = np.log10(Cs)\n",
    "plt.plot(axis_x,accuracys)\n",
    "\n",
    "plt.legend()\n",
    "plt.xlabel('log(C)')\n",
    "plt.ylabel('accuracy')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pickle\n",
    "svc3 = SVC(C=10,kernel='rbf',gamma=0.01)\n",
    "svc3.fit(X_train,y_train)\n",
    "pickle.dump(svc3,open(\"Otto_RBFSVC.pkl\",\"wb\"))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
